package cn.baker.rabbitmq.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @author yuanyu
 */
@Data
@ConfigurationProperties(prefix = "trans.rabbitmq")
public class TransRabbitProperties {
    /**
     * 主机地址
     */
    private String host;
    /**
     * 端口
     */
    private Integer port;
    /**
     * 用户名
     */
    private String username;
    /**
     * 密码
     */
    private String password;
    /**
     * 交换机
     */
    private String vhost;

    /**
     * 服务名
     */
    private String service;

    /**
     * 生产者相关配置
     */
    private Producer producer;

    /**
     * 消费者相关配置
     */
    private Consumer consumer;

    /**
     * 生产者配置
     */
    @Data
    public static class Producer {
        /**
         * 定时任务重发次数
         */
        private Integer resendTimes;
        /**
         * 定时任务执行频率
         */
        private Integer resendFreq;
    }

    /**
     * 消费者配置
     */
    @Data
    public static class Consumer {
        /**
         * 重新消费次数，超过后扔到死信队列
         */
        private Integer reConsumerTimes;
    }

    /**
     * 死信队列
     */
    @Data
    public static class Dlx {
        /**
         * 死信队列名称
         */
        private String queueName;
    }

}